tg-me.com/cpp_geek/308
Last Update:
🧠 Как static в C++ помогает бороться с неожиданностями
Сейчас покажу вам интересную особенность ключевого слова static
в контексте функций — то, что часто забывают даже опытные разработчики.
Представим простую ситуацию:
void logCall() {
int counter = 0;
counter++;
std::cout << "Called " << counter << " times\n";
}
Кажется, всё хорошо… Но функция всегда выводит
Called 1 times
, потому что переменная counter
создаётся заново при каждом вызове.Теперь добавим
static
:
void logCall() {
static int counter = 0;
counter++;
std::cout << "Called " << counter << " times\n";
}
А вот теперь магия — переменная
counter
сохраняет своё значение между вызовами! Это отличный способ реализовать простой счётчик, кэш или ленивую инициализацию прямо в функции.📌 Важно:
static
делает переменную локальной по области видимости, но глобальной по времени жизни.А вы где применяли
static
неожиданным образом? Делитесь в комментариях! 👇➡️ @cpp_geek
BY C++ geek
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/cpp_geek/308